﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Kokomo.Mirror.Ia32
{
	public struct ExtendedOpCode
	{
		public ExtendedOpCode(
			Mnemonic mnemonic,
			ModRM modRM,
			bool hasMod = false,
			bool hasRM = false,
			OperandType[] operandTypes = null,
			Prefixes mandatoryPrefixes= Prefixes.None
			)
			: this()
		{
			this.Mnemonic = mnemonic;
			this.ModRM = modRM;
			this.HasMod = hasMod;
			this.HasRM = hasRM;
			this.OperandTypes = operandTypes;
			this.MandatoryPrefixes = mandatoryPrefixes;
		}

		public Mnemonic Mnemonic { get; private set; }
		public ModRM ModRM { get; private set; }
		public bool HasMod { get; private set; }
		public bool HasRM { get; private set; }
		public OperandType[] OperandTypes { get; private set; }
		public Prefixes MandatoryPrefixes { get; private set; }
	}
}
